package Data::Conveyor::Stage;

# $Id: Stage.pm 13653 2007-10-22 09:11:20Z gr $

# Base class for stages.
#
# To use it, create an object of this class, set the ticket and
# call run(). You can then read the status the stage's ticket and act on it.

use warnings;
use strict;
use Error::Hierarchy::Util 'assert_defined';


our $VERSION = '0.02';


use base 'Class::Scaffold::Storable';


__PACKAGE__->mk_scalar_accessors(qw(will_shift_ticket));


use constant DEFAULTS => (
    will_shift_ticket => 1,
);


sub run {
    my $self = shift;
    $self->begin;
    $self->main;
    $self->end;
}


sub begin {}
sub main  {}
sub end   {}


1;


__END__

{% USE p = PodGenerated %}

=head1 NAME

{% p.package %} - stage-based conveyor-belt-like ticket handling system

=head1 SYNOPSIS

    {% p.package %}->new;

=head1 DESCRIPTION

None yet. This is an early release; fully functional, but undocumented. The
next release will have more documentation.

=head1 METHODS

=over 4

{% p.write_methods %}

=back

{% p.write_inheritance %}

{% PROCESS standard_pod %}

=cut

